package com.zwh.wx.handler;
/**
 * 微信聊天消息类型枚举
 * 用于定义微信聊天中不同消息类型的常量
 */
public enum WxChatMsgTypeEnum {

    /**
     * 用户关注事件
     * 当用户关注公众号时触发的消息类型
     */
    SUBSCRIBE("event.subscribe", "用户关注事件"),

    /**
     * 接收用户文本消息
     * 当用户发送文本消息给公众号时的消息类型
     */
    TEXT_MSG("text", "接收用户文本消息");

    // 消息类型的标识
    private String msgType;

    // 消息类型的描述
    private String desc;

    /**
     * 构造函数
     * 初始化消息类型及其描述
     *
     * @param msgType 消息类型标识
     * @param desc    消息类型描述
     */
    WxChatMsgTypeEnum(String msgType, String desc) {
        this.msgType = msgType;
        this.desc = desc;
    }

    /**
     * 根据消息类型获取对应的枚举实例
     * 如果找不到匹配的消息类型，则返回null
     *
     * @param msgType 消息类型标识
     * @return 对应的消息类型枚举实例，如果找不到则返回null
     */
    public static WxChatMsgTypeEnum getByMsgType(String msgType) {
        for (WxChatMsgTypeEnum wxChatMsgTypeEnum : WxChatMsgTypeEnum.values()) {
            if (wxChatMsgTypeEnum.msgType.equals(msgType)) {
                return wxChatMsgTypeEnum;
            }
        }
        return null;
    }

}
